package com.google.code.lf.gfm.service;

import com.google.code.lf.gfm.model.grisbi.GrisbiFile;
import com.google.code.lf.gfm.model.rules.GrisbiAfterFileImportInput;
import com.google.code.lf.gfm.model.rules.GrisbiAfterFileImportParamFile;

/**
 * Interface du service de règles associées à la manipulation des fichiers de données <a href="http://grisbi.org">Grisbi</a>.
 * <br/>Le moteur de règles utilisé est l'api <a href="http://www.jboss.org/drools/">drools</a>.
 *
 * @author gael.lorent-fonfrede
 */
public interface IGrisbiRuleService {
	/** Id de bean Spring : grisbiRuleService. */
	public static final String BEAN_ID = "grisbiRuleService";

	/**
	 * Post-traitement d'un fichier de données <a href="http://grisbi.org">Grisbi</a> après import de données bancaires (qif, ofx, etc).
	 * 
	 * @param gsbFile {@link GrisbiFile} d'entrée.
	 * @param inputParamFile Le {@link GrisbiAfterFileImportParamFile}, contenant la liste de {@link GrisbiAfterFileImportInput} utilisés dans les règles.
	 * @return Le {@link GrisbiFile} modifié.
	 */
	public GrisbiFile afterImportProcess(GrisbiFile gsbFile, GrisbiAfterFileImportParamFile inputParamFile);
}
